/*
package d11_test02;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

//使用创建线程的第二个方式

//实现每次抽奖完不打印,最后一次性打印
//1、实现Runnable接口
public class MyRunnable02 implements Runnable {
    //当做是共享资源,线程只有操作共享资源的时候才是有意义的
    private int[] jackpot;
    //5.1创建随机数对象
    private static final Random r = new Random();

    public List<Integer> getPrizes() {
        return prizes;
    }

    public void setPrizes(List<Integer> prizes) {
        this.prizes = prizes;
    }

    */
/*public List<String> getBox() {
        return box;
    }

    public void setBox(List<String> box) {
        this.box = box;
    }*//*


    //创建一个集合存储要抽到的奖项
    private List<Integer> prizes = new ArrayList<>();
    //再创建一个集合,存储奖项对应的抽奖箱子
//    private List<String> box = new ArrayList<>();

    public MyRunnable02(int[] jackpot) {
        this.jackpot = jackpot;
    }


    //2、指定线程要执行的任务

    //3、保证线程安全

    @Override
    public void run() {
        //4、获取当前执行的线程名字
        String name = Thread.currentThread().getName();

        //7、要让抽奖箱子一直在抽奖
        while (true) {
            synchronized (jackpot) {
                if (prizes.size() > 6){
                    break;//直接结束,一次抽奖就结束了
                }

                //想让当前线程睡一秒才开始抽
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                //5、随机抽取一个奖项
                int money = jackpot[r.nextInt(jackpot.length)];

                //6、进行奖励的输出
//                System.out.println(name + " 又产生一个" + money + "元大奖");

                //7、每抽到一个奖励,就将抽奖的箱子和获得的奖项存到集合中
                prizes.add(money);
//                box.add(name);


            }
        }

    }
}
*/
